The invention relates generally to disk storage systems, and more particularly, to a method and apparatus for controlling a disk storage system in which multiple users can connect to and access the disk storage system.
Traditionally, disk storage systems, in particular disk arrays, were passive storage devices making large amounts of magnetic disk storage available to the host computers connected to them. As the speed of the interconnections between hosts and arrays increases, as the arrays themselves grow in size, and, as the arrays become more intelligent, it is increasingly more likely that multiple hosts could simultaneously access and use, and/or change, the same disk file or data or attempt to control the whole system. Accordingly, data could be corrupted if, while a first host computer is modifying the data, a second host computer also attempts to read and/or modify the data, or obtain control of the whole array. Some mechanism for establishing synchronization between the different hosts must be provided to ensure that two or more different applications will not be able to perform control operations on the disk array in overlapping time intervals.
A typical interconnection bus between the hosts and the disk array is a SCSI bus. The SCSI command library is well defined, and has a command to perform a reserve operation (reserve-SCSI 16H and release-SCSI 17H). Unfortunately, however, this command only operates on a single device and is used in association with normal read and write operations. Therefore, no SCSI command is available which performs the needed "reserve" operation to reserve the whole disk array to a single host computer or application for performing a control operation on the array, for example setting perma-cache, re-allocating devices, etc. These are control operations that affect the state of the whole disk array. They must be performed only by one host at a time. Thus, a mechanism is needed to "reserve" the whole disk array for performing such a control operation.